import socket
import random
from tkinter import *
import threading
import _thread
import time





PORT = 8888
# 创建
# 创建TCP socket
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# SOCK_STREAM   是有保障的（即能保证数据正确传送到对方）面向连接的SOCKET，多用于资料（如文件）传送。

# 绑定端口
serverSocket.bind(('192.168.0.90',PORT))

# 监听端口
serverSocket.listen(5)
print(f'服务器端启动，监听{PORT}端口，等待客户端连入')



conn,addr = serverSocket.accept()        # 这里是将服务器端接收的内容分别存放于 conn 和 addr 其中conn为新开的端口 用于专门对接 addr内的地址
print('客户端连入',conn,addr)

# 从客户端读取信息
data = conn.recv(1024)     # 注意这里的 1024 是开辟一块 1024 大小的存储空间
print('接收到'+data.decode())       # 注意 这里需要将接收的数据进行解码


x = int(data.decode())  # 客户端传送过来的数据
y = random.randint(1, 3)  # 服务器自身产生的数据
# y = int(input('请输入你要出的拳（1石头2剪刀3布）：'))
# 定义一下 0 代表平局 1代表客户端赢 2代表服务器赢
if x==1:
    if y==1:
        conn.send('客户端出石头，服务器出石头，游戏结果为：平局'.encode('utf-8'))
    elif y==2:
        conn.send('客户端出石头，服务器出剪刀，游戏结果为：客户端获胜'.encode('utf-8'))
    else:
        conn.send('客户端出石头，服务器出布，游戏结果为：服务器获胜'.encode('utf-8'))
elif x==2:
    if y==1:
        conn.send('客户端出剪刀，服务器出石头，游戏结果为：服务器获胜'.encode('utf-8'))
    elif y==2:
        conn.send('客户端出剪刀，服务器出剪刀，游戏结果为：平局'.encode('utf-8'))
    else:
        conn.send('客户端出剪刀，服务器出布，游戏结果为：客户端获胜'.encode('utf-8'))
else:
    if y==1:
        conn.send('客户端出布，服务器出石头，游戏结果为：客户端获胜'.encode('utf-8'))
    elif y==2:
        conn.send('客户端出布，服务器出剪刀，游戏结果为：服务获胜'.encode('utf-8'))
    else:
        conn.send('客户端出布，服务器出布，游戏结果为：平局'.encode('utf-8'))

# 向客户端发信息
# conn.send('已收到'.encode('utf-8'))    # 注意 这里发送的信息需要编写传送信息的编码形式

# 关闭socket
serverSocket.close()





